package org.atlantis.evnlib.execution;

import java.util.Collection;

import org.atlantis.evnlib.EventArg;
import org.atlantis.evnlib.EventProxy;
import org.atlantis.evnlib.EventReceiver;

/**
 * 事件执行器，用来执行各种事件。
 * 
 * @author <a href="mailto:seenoevil.cn@gmail.com">李曦</a><br/>
 *         Created at: 2011-7-4 上午09:52:06
 */
public interface EventExecutor {

	void execute(EventReceiver eventReceiver, EventArg eventArg);

	void addEvent(EventProxy ep);

	Collection<Runnable> removeEvent(EventProxy ep);

	Collection<Runnable> shutdownNow();
}
